Dynamically displaying current status of tasks

ABSTRACT

The current status of a list of tasks to be performed is dynamically displayed. The tasks may be performed by a user (e.g., data entered by the user, words spoken by the user, actions taken by the user, and so forth) or alternatively by a computer (e.g., the steps it follows in carrying out a programmed task). At least a portion of the list is displayed at any given time along with an indication of which task is the next task to be performed. As the tasks are completed, the current status of the progression through the items on the list is dynamically updated so as to readily inform the user (or someone else) as to what the current task is that needs to be performed, as well as what tasks have already been performed and/or what tasks remain to be performed.

RELATED APPLICATIONS

[0001] A claim of priority is made to U.S. Provisional Application No.60/240,685, filed Oct. 16, 2000, entitled “Method for DynamicallyDisplaying the Current Status of Tasks”.

TECHNICAL FIELD

[0002] The present invention is directed to graphical user interfacesand more particularly to dynamically displaying the current status oftasks.

BACKGROUND

[0003] As computers become increasingly powerful and commonplace, theyare being used for an increasingly broad variety of tasks. For example,in addition to traditional activities such as running word processingand database applications, computers are increasingly becoming anintegral part of users' daily lives. Programs to schedule activities,generate reminders, and provide rapid communication capabilities arebecoming increasingly popular. Moreover, computers are increasinglypresent during virtually all of a person's daily activities. Forexample, hand-held computer organizers (e.g., PDAs) are increasinglycommon, and communication devices such as portable phones areincreasingly incorporating computer capabilities. More recently, thefield of wearable computers (e.g., with eyeglass displays) has begun toexpand, creating a further presence of computers in people's dailylives.

[0004] Computers often progress through a particular series of stepswhen allowing a user to accomplish a particular task. For example, if auser desires to enter a new name and address to an electronic addressbook, the computer progresses through a series of steps prompting theuser to enter the desired information (e.g., name, street address, city,state, zip code, phone number, etc.). On computers with large displays(e.g., typical desktop computers), sufficient area exists on the displayto provide an informative and useable user interface (UI) that allowsthe user to enter the necessary data for the series of steps. However,problems exist when attempting to guide the user through the particularseries of steps on smaller displays. Without the large display area,there is frequently insufficient room to provide the prompts in the sameinformative and useable manner.

[0005] Additionally, the nature of many new computing devices with smalldisplays (e.g., PDAs and wearable computers) is that the computingdevices are transported with the user. However, traditional computerprograms are not typically designed to efficiently present informationto users in a wide variety of environments. For example, most computerprograms are designed with a prototypical user being seated at astationary computer with a large display device, and with the userdevoting full attention to the display. In that environment, thecomputer program can be designed with the assumption that the user'sattention is predominately on the display device. However, many newcomputing devices with small displays can be used when the user'sattention is more likely to be diverted to some other task (e.g.,driving, using machinery, walking, etc.). Many traditional computerprograms, designed with large display devices in mind, frequently do notallow the user to quickly and easily reorient him-or her-self to thetask being carried out by the computer. For example, if the user isperforming a task by following a series of steps on a wearable computer,looks away from the display to focus his or her attention on crossing abusy intersection, and then returns to the task, it would be desirablefor the user to be able to quickly and easily reorient him- or her-selfto the task (in other words, readily know what steps he or she hasaccomplished so far and what the next step to be performed is).

[0006] Accordingly, there is a need for new techniques to display thecurrent status of tasks to a user.

SUMMARY

[0007] Dynamically displaying current status of tasks is describedherein.

[0008] According to one aspect, a list of items corresponding to tasksthat are to be performed are displayed. The tasks may be performed by auser (e.g., data entered by the user, words spoken by the user, actionstaken by the user, and so forth) or alternatively by a computer (e.g.,the steps followed in carrying out a programmed task). At least aportion of the list is displayed at any given time along with anindication of which task is the next task to be performed. As the userprogresses through the set of tasks, the current status of his or herprogression through the corresponding items on the list is dynamicallyupdated so as to readily inform the user (or someone else) as to whatthe current task is that needs to be performed, as well as what taskshave already been performed and/or what tasks remain to be performed.

[0009] According to another aspect, only a subset of the list of itemsis displayed at any given time. The list is scrolled through as thetasks are performed so that different items are displayed as part of thesubset as tasks are performed.

[0010] According to another aspect, multiple lists of tasks to beperformed by multiple individuals (or computing devices) are displayedon a display of the user. As the multiple individuals (or computingdevices) finish the tasks in their respective lists, an indication ofsuch completion is forwarded to the user's computer, which updates thedisplay to indicate the next task in the list to be displayed. The useris thus able to monitor the progress of the multiple individuals (orcomputing devices) in carrying out their respective tasks.

BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The present invention is illustrated by way of example and notlimitation in the figures of the accompanying drawings. The same numbersare used throughout the figures to reference like components and/orfeatures.

[0012]FIG. 1 illustrates an exemplary computing device such as may beused in accordance with certain embodiments of the invention.

[0013]FIG. 2 illustrates an exemplary user interface display inaccordance with certain embodiments of the invention.

[0014]FIG. 3 illustrates an exemplary display of an item list andcurrent location marker such as may be used in accordance with certainembodiments of the invention.

[0015]FIGS. 4A and 4B illustrates different ways in which the prompt ina sequence can be changed.

[0016]FIG. 5 is a flowchart illustrating an exemplary process fordisplaying the current status of tasks in accordance with certainembodiments of the invention.

[0017]FIGS. 6 and 7 illustrate alternative displays of the item list andcurrent location identifiers with reference to a sequence of tasks to becompleted in order to record a new inspection (e.g., a buildinginspection).

[0018]FIG. 8 illustrates an exemplary distributed environment in whichthe status of tasks being performed by multiple users can be monitored.

[0019]FIG. 9 illustrates an exemplary group of lists that may bedisplayed for the distributed environment of FIG. 8.

DETAILED DESCRIPTION

[0020] Dynamically displaying the current status of tasks is describedherein. A list of items or prompts that is to be traversed by a user ina particular order is displayed to the user (e.g., a set of tasks theuser is to perform in a particular sequence as part of his or her job, aset of words to be spoken, a list of questions or fields to be answered,and so forth). At least a portion of the list is displayed at any giventime along with an indication of which item in the list is the next itemthat the user needs to handle (e.g., the next task to perform, the nextword to speak, the next question to answer, and so forth). As the userprogresses through the list of tasks, the current status of his or herprogression through the prompts on the list is dynamically updated so asto readily inform the user as to what the current task is that needs tobe performed, as well as what tasks have already been performed and/orwhat tasks remain to be performed.

[0021]FIG. 1 illustrates an exemplary computing device 100 such as maybe used 18 in accordance with certain embodiments of the invention.Computing device 100 represents a wide variety of computing devices,such as wearable computers, personal digital assistants (PDAs), handheldor pocket computers, telephones (e.g., cell phones), laptop computers,gaming consoles or portable gaming devices, desktop computers, Internetappliances, etc. Although the dynamic displaying of current status oftasks described herein is particularly useful if computing device has asmall display, any size display may be used with the invention.

[0022] Computing device 100 includes a central processing unit (CPU)102, memory 104, a storage device 106, one or more input controllers108, and one or more output controllers 110 (alternatively, a singlecontroller may be used for both input and output) coupled together via abus 112. Bus 112 represents one or more conventional computer buses,including a processor bus, system bus, accelerated graphics port (AGP),universal serial bus (USB), peripheral component interconnect bus (PCI),etc.

[0023] Memory 104 may be implemented using volatile and/or non-volatilememory, such as random access memory (RAM), read only memory (ROM),Flash memory, electronically erasable programmable read only memory(EEPROM), disk, and so forth. Storage device 106 is typicallyimplemented using non-volatile “permanent” memory, such as ROM, EEPROM,magnetic or optical diskette, memory cards, and the like.

[0024] Input controller(s) 108 are coupled to receive inputs from one ormore input devices 114. Input devices 114 include any of a variety ofconventional input devices, such as a microphone, voice recognitiondevices, traditional qwerty keyboards, chording keyboards, half qwertykeyboards, dual forearm keyboards, chest mounted keyboards, handwritingrecognition and digital ink devices, a mouse, a track pad, a digitalstylus, a finger or glove device to capture user movement, pupiltracking devices, a gyropoint, a trackball, a voice grid device, digitalcameras (still and motion), and so forth.

[0025] Output controller(s) 110 are coupled to output data to one ormore output devices 116. Output devices 116 include any of a variety ofconventional output devices, such as a display device (e.g., a hand-heldflat panel display, an eyeglass-mounted display that allows the user toview the real world surroundings while simultaneously overlaying orotherwise presenting information to the user in an unobtrusive manner),a speaker, an olfactory output device, tactile output devices, and soforth.

[0026] One or more application programs 118 are stored in memory 104 andexecuted by CPU 102. When executed, application programs 118 generatedata that may be output to the user via one or more of the outputdevices 116 and also receive data that may be input by the user via oneor more of the input devices 114. For discussion purposes, oneparticular application program is illustrated with a user interface (UI)component 120 that is designed to present information to the userincluding dynamically displaying the current status of tasks asdiscussed in more detail below.

[0027] Although discussed herein primarily with reference to softwarecomponents and modules, the invention may be implemented in hardware ora combination of hardware, software, and/or firmware. For example, oneor more application a5 specific integrated circuits (ASICs) could bedesigned or programmed to carry out the invention.

[0028]FIG. 2 illustrates an exemplary user interface display inaccordance with certain embodiments of the invention. User interfacedisplay 150 can be, for example, the display generated by user interface120 of FIG. 1. UI display 150 includes an item or prompt list portion152, a user choices portion 154, and an applet window portion 156.Additional labels or prompts 158 may also be included (e.g., a title forthe task being handled, the current time, the amount of time left tofinish the task, etc.). List portion 152 displays a list that promptsthe user of tasks that are to be handled by the user in a particularorder. An indication is also made to the user within list portion 152 ofwhere the user currently is in that list (that is, what the next item ortask is that needs to be handled by the user), and also identifies itemsor tasks (if any) that have already been handled by the user as well asfuture items or tasks (if any) that need to be handled by the user. Themanner in which an item or task is handled by the user is dependent onthe nature of the list, as discussed in more detail below.

[0029] User choices portion 154 displays the options for the user toselect from based on the next item or task in the list that needs to behandled by the user. For example, assume that the list in portion 152 isa list prompting the user regarding what information needs to begathered in order for the user to set up a meeting with a potentialcustomer. The list of prompts in list portion 152 could be a list oftasks the user must perform—that is, a list of information that needs tobe collected (e.g., the customer's name, the location of the meeting,the time of the meeting, and so forth). If we further assume that thecurrent task that needs to be handled by the user is entry of thelocation of the meeting, user choices portion 154 could display thevarious permissible inputs for the location of the meeting (e.g., at theuser's main office, at a remote office, at the customer's facility, andso forth).

[0030] By way of another example, the item list may be a list of promptsfor the information to be verbally input by the user in each step, withuser choices portion 154 displaying a list of which words can be spokenin each step.

[0031] Applet window portion 156 displays additional informationclarifying or amplifying the choices in user choices portion 154 (or thecurrent item or task in item list portion 152). Following the previousexample, if the current task that needs to be handled by the user isentry of the location of the meeting, applet window portion 156 coulddisplay additional descriptive information for one or more of thepermissible inputs for the location of the meeting (e.g., a streetaddress, a distance from the user's home, a map flagging the locationsof the various meeting locations, and so forth).

[0032] The list displayed in list portion 152 is a list of items that isto be traversed by a user in a particular order. This can be a list oftask prompts regarding tasks that the user is to perform, a list oftasks prompts regarding tasks to be performed by another user orcomputer, and so forth. Any of a wide variety of lists can be displayed,such as a set of tasks the user is to perform in a particular sequenceas part of his or her job (this can be used, for example, to assist intraining users to do their jobs), a set of tasks the user is to performin a particular sequence in order to assemble or install a product he orshe has purchased, a set of words to be spoken (e.g., queues as to whatvoice inputs the user is to make in order to carry out a task), a listof questions or fields to be answered, and so forth. Alternatively, thelist of items may be a list of tasks or steps to be performed by acomputer or computer program. Such a list can be used, for example, by auser to track the process of the computer or program in carrying out theparticular sequence of steps. Additionally, depending on the nature ofthe sequence of tasks being performed, multiple lists of items may bedisplayed (e.g., a multi-tiered item list).

[0033] Situations can arise in which the list of items or prompts is toolarge to be displayed in its entirety. In such situations, only aportion of the list is displayed (e.g., centered on the item or promptfor the next task to be performed). This subset of the steps to beperformed is then scrolled as tasks are completed, resulting in adynamic list display that changes when a task is completed.

[0034] By displaying the list of prompts (or at least a portionthereof), the user is able to readily identify the status of the set oftasks being performed (in other words, the user is also able to obtain afeel for where he or she is (or where the user or computer beingmonitored is) in progressing through the sequence of tasks). The user isable to quickly identify one or more previous tasks (if any) in thesequence, as well as one or more future tasks (if any) in the sequence.Such information is particularly helpful in reorienting the user to thesequence of tasks if his or her attention has been diverted away fromthe sequence. For example, the user's attention may be diverted awayfrom the sequence to answer questions from another employee. Afteranswering the question, the user can look back at display 150 andquickly reorient him- or her-self into the sequence of tasks beingperformed.

[0035] Item lists may be a set of predetermined items, such as aparticular set of steps to be followed to assemble a machine or a set ofwords to be uttered to carry out a task for a speech-recognizingcomputer. Alternatively, item lists may be dynamic, changing based onthe user's current location, current activity, past behavior, etc. Forexample, computer 100 of FIG. 1 may detect where the user is currentlylocated (e.g., in his or her office, in the assembly plant, whichassembly plant, etc.), and provide the appropriate instructions toperform a particular task based on that current location. Additionalinformation regarding detecting the user's current context (e.g.,current location, current activity, etc.) can be found in a co-pendingU.S. patent application Ser. No. 09/216,193, entitled “Method and SystemFor Controlling Presentation of Information To a User Based On TheUser's Condition”, which was filed Dec. 18, 1998, and is commonlyassigned to Tangis Corporation. This application is hereby incorporatedby reference.

[0036]FIG. 3 illustrates an exemplary display of an item list andcurrent location marker such as may be used in accordance with certainembodiments of the invention. Assume that the sequence of items on thelist is a set of prompts regarding information that needs to be suppliedby the user in order to schedule a meeting. In the illustrated example,this list includes the following information: who the meeting is with(who), the date and time for the meeting (when), the duration of themeeting (how long), the location of the meeting (where), an indicationof any materials to bring to the material (bring), and an indication ofanyone else that should be notified of the meeting (cc).

[0037]FIG. 3 illustrates an example item list displayed in list portion152 of FIG. 2. Initially, the item list 170 is displayed, including thefollowing prompts: “who?”, “when?”, “how long?”, “where?”, and “bring?”.The prompts in list 170 provide a quick identification to the user ofwhat information he or she needs to input for each task in the sequenceof tasks for scheduling a meeting. Due to the limited is display area,list 170 does not include the prompts for each step in the sequence, butrather scrolls through the prompts as discussed in more detail below. Acurrent location marker 172 is also illustrated in FIG. 3 to identify tothe user what the current step is in the sequence. Assuming the meetingscheduling process has just begun, the first step in the sequence is toidentify who the meeting is with (who), which is identified by currentlocation marker 172 being situated above the prompt “who?”. In theillustrated example, location marker 172 is a circle or ball.Alternatively, other types of presentation changes may be made to alterthe appearance of a prompt (or area surrounding a prompt) in order todistinguish the current step from other steps in the sequence. Forexample, different shapes other than a circle or ball may be used for alocation marker, the text for the prompt may be altered (e.g., adifferent color, a different font, a different size, a differentposition on screen (e.g., slightly higher or lower than other prompts inthe list), and so forth), the display around the prompt may be altered(e.g., the prompt may be inverted so that it appears white on a blackbackground rather than the more traditional black on a white background,the prompt may be highlighted, the prompt may be encircled by a border,and so forth), etc. Those skilled in the art can easily determine avariety of alternate methods for marking the current step.

[0038] One additional presentation change that can be made todistinguish the current step from other steps in the sequence is tochange the prompt itself. The prompt could be replaced with anotherprompt, or another prompt could be superimposed on the prompt for thecurrent step. For example, the user may have a set of individuals thathe or she typically meets with, and these may be superimposed on the“who?” prompt when it is the current step. FIGS. 4A- 4B illustratesdifferent ways in which the prompt in a sequence can be changed. FIG. 4Aillustrates an example item list with the prompt for the current step inthe sequence being superimposed with various input options. A list 190is illustrated and the current step is to input who the meeting is to bewith (the “who?” prompt). As illustrated, a set of common people thatthe user schedules meetings with (Jane, David, Lisa, and Richard) aresuperimposed on the “who?” prompt. The appearance of the underlyingprompt “who?” may be changed (e.g., shadowed out, different color, etc.)in order for overlying input options to be more easily viewed. It is tobe appreciated that the exact location of the superimposed set of inputoptions can vary (e.g., the characters of one or more input options mayoverlap the prompt, or be separated from the prompt).

[0039]FIG. 4B illustrates an example item list with the prompt for thecurrent step in the sequence being replaced by the set of input options.A list 192 is illustrated and the current step is to input who themeeting is to be with (the “who?” prompt). However, as illustrated, the“who?” prompt is replaced with a set of common people that the userschedules meetings with (Jane, David, Lisa, and Richard).

[0040] The user is thus given an indication of both the current step inthe sequence as well as common responses to that step. The type ofinformation that is superimposed on or replaces the prompt can varybased on the current step. For example, when the “when?” prompt is thecurrent step it may have superimposed thereon the times that the user isavailable for the current day (or current week, and so forth).

[0041] Returning to FIG. 3, once the user enters the informationidentifying who the meeting is with (assume for purposes of this examplethe meeting is with Bob Smith), list 170 is changed to list 174 in whichthe prompt “who?” is replaced with the name “Bob Smith” and the currentlocation marker 172 is changed to indicate the next prompt (“when?”) isthe current task that needs to be handled by the user. Assuming the userinputs that the meeting is to occur at 1Oam on October 31, list 174 ischanged to list 176 in which the prompt “when?” is replaced with thedate and time of the meeting, and the current location marker 172 ischanged to indicate the next prompt (“how long?”) is the current taskthat needs to be handled by the user. Thus, as can be seen from lists172, 174, and 176, the current location marker 172 “bounces” along thelist from item to item, making the user readily aware of what thecurrent task is that he or she should be performing (that is, which datahe or she should be inputting in the present example).

[0042] Once the user inputs the duration of the meeting, list 176 ischanged to list 178. Given the limited display area, the user interfacenow scrolls the list so that the leftmost item is no longer shown but anew item is added at the right. Thus, the identification of “Bob Smith”is no longer shown, but a prompt for who else should be notified of themeeting (“cc?”) is now shown. Once the user enters the location for themeeting (“home office”), list 178 is changed to list 180 and currentlocation marker 172 is changed to indicate the next prompt (“bring?”) isthe current task that needs to be handled by the user. Thus, as can beseen with lists 176, 178, and 180, current location marker 172 may notbe moved in response to an input but the list may be scrolled.

[0043] Thus, as can be seen in FIG. 3, the item list provides a seriesof prompts identifying what tasks (if any) in the sequence have alreadybeen performed and what tasks (if any) remain to be performed. For thosetasks that have already been performed, an indication is made in thelist as to what action was taken by the user for those tasks (e.g., whatinformation was entered by the user in the illustrated example). Thus,the user can readily orient him- or her-self to the sequence of steps,even if his or her attention is diverted from the display for a periodof time. Alternatively, the prompts in the list need not be changed whenthe user enters the data (e.g., “who?” need not be replaced by “BobSmith”). The data input by the user can alternatively be displayedelsewhere (e.g., in applet window portion 156).

[0044] One advantage of the item lists described herein is that thelists present the multiple steps or items in a concise manner - thesesteps or items can also be referred to as idioms. When these idioms arepresented together in a sequence, the provide more information to theuser than when presented in independent form. For example, the idiom“bring?” by itself does not present as much information to the user asthe entire sequence of idioms “who?”, “when?”, “how long?”, “where?”,and “bring?”.

[0045] The use of item lists as described herein also allows anindividual to “zoom” in on (and thus gain more information about) aparticular task. For example, with reference to FIG. 3, the user is ableto select and zoom in on the “where?” prompt and have additionalinformation about that task displayed (e.g., the possible locations forthe meeting). The user is able to “backtrack” through the list (e.g., bymoving a cursor to the desired item and selecting it, or using a backarrow key or icon, or changing the current location marker (e.g.,dragging and dropping the location marker to the desired item), etc.)and see this additional information for tasks already completed.Alternatively, the “backtracking” may be for navigational rather thaninformational purposes. Moving back through the list (whether bymanipulation of the location marker or in some other manner) may also beused to accomplish other types of operations, such as defining a macroor annotation.

[0046] Additionally, by displaying the prompts for future items, thespeed of handling of the sequence of the items by the user canpotentially be increased. For example, the user can see the prompt forthe next one or more items in the list and begin thinking about how heor she is going to handle that particular item even before the computingdevice is finished processing the input for the item he or she justhandled.

[0047] According to another embodiment, multiple location markers aredisplayed along with the item list—one marker identifying the currentitem to be handled by the user and another marker identifying thecurrent item being processed by the computing device. Situations canarise where the user can input data quicker than it can be processed bythe computing device. For example, the user may be able to talk at afaster rate than the computing device is able to analyze the speech.

[0048] The use of two such markers can allow the user to identify if thecomputing device is hung up on or having difficulty processing aparticular input (e.g., identify a particular word spoken by the user,misrecognition of the input, improper parsing, etc.), the user canidentify this situation and go back to the task the computing device ishaving difficulty processing and re-enter the speech.

[0049]FIG. 5 is a flowchart illustrating an exemplary process fordisplaying the current status of tasks in accordance with certainembodiments of the invention. The process of FIG. 5 is carried out bythe user interface of a computing device (e.g., interface 120 of FIG.1), and may be performed in software. Although FIG. 5 is discussed withreference to a location marker, it is to be appreciated that any of thepresentation changes discussed above an be used to identify items in thelist.

[0050] Initially, an item list is displayed (act 200), which is asequence of items or prompts for the user to follow. A current locationmarker is also displayed to identify the first item in the list (act202), and input corresponding to the first item in the list is received(act 204). The nature of this input can vary depending on the sequenceof tasks itself (e.g., it may be data input by a user, an indicationfrom another computer program that the task has been accomplished,etc.). A check is then made as to whether the end of the list has beenreached (at 206). If the end of the list has been reached then theprocess stops (act 208), waiting for the next sequence of tasks to beginor for the user to backtrack to a previously completed task.

[0051] However, if the end of the list has not been reached, then acheck is made as to whether scrolling of the list is needed (act 210).Whether scrolling of the list is needed can be based on a variety ofdifferent factors. For example, the user interface may attempt to makesure that there are always at least a threshold number of prompts beforeand/or after the current location marker, the user interface may attemptto make sure that the current task remains as close to the center of theitem list as is possible but that no portions of the item list be leftempty, etc. These factors can optionally be user-configurablepreferences, allowing the user to adjust the display to his or herparticular likes and/or dislikes (e.g., the user may prefer to see morefuture tasks than previous tasks).

[0052] If scrolling is needed, then the item list is scrolled by oneitem (or alternatively more items) in the appropriate direction (act212). The amount that the item list is scrolled can vary (e.g., based onthe sizes of the different items in the list). The appropriate directionfor scrolling can vary based on the activity being performed by the userand the layout of the list (e.g., in the example of FIG. 3, thescrolling is from right to left when progressing forward through thelist, and left to right when backtracking through the list). Regardlessof whether the ordered item list is scrolled, after act 210 or 212 thecurrent location marker is moved as necessary to identify the next itemin the list that is to be handled by the user (act 214). In somesituations, movement of the current location marker may not be necessarydue to the scrolling performed (e.g., as illustrated with reference tolists 176 and 178 in FIG. 3). At some point after the current locationmarker is moved (if necessary), user input is received corresponding tothe identified next item in the list (act 216). The process then returnsto determine whether the end of the list has been reached (act 206).

[0053] The item list and current location identifier or marker can bedisplayed in a wide variety of different manners. FIGS. 6 and 7illustrate alternative displays of the item list and current locationidentifiers with reference to a sequence of tasks to be completed inorder to record a new inspection (e.g., a building inspection). In theexemplary display 240 of FIG. 6, an item list portion 242 and an appletwindow portion 244 are illustrated. The item list portion 242 includes alist of tasks that are to be handled by the user, each of which isinformation to be entered by the user. Once entered, the information isdisplayed in applet window portion 244. A current location marker 246advances down the list in portion 242 to identify the currentinformation that the user needs to input (the customer's state in theillustrated display). Additional information is displayed at the top ofdisplay 240, including a prompt 248 identifying a type of informationbeing entered by the user (inspection information).

[0054] In the exemplary display 260 of FIG. 7, a multi-tiered item listis displayed including list portion 262 and list portion 264. In listportion 262, prompts for the overall process of recording a newinspection are listed, including selecting a new inspection option andthen entering inspection information. Two current location markers 266and 268 are illustrated, each providing a visual indication of where inthe overall process the current user is (inspection info in theillustrated display). A prompt 270 provides a further identification tothe user of where he or she is in the overall process. List portion 264includes prompts for the process of entering inspection information,with a current location marker 272 providing a visual indication ofwhere in the inspection information entry process the user currently is(customer state in the illustrated display).

[0055] In addition to tracking the status of tasks being performed by asingle user, the dynamic displaying of the current status of tasks ofthe present invention can further be used to track the status of tasksbeing performed by multiple users. In this situation, informationindicating the status of tasks being performed by multiple users iscommunicated back to the computing devices of one or more other users,who in turn can view the status information of multiple users on asingle display.

[0056]FIG. 8 illustrates an exemplary distributed environment in whichthe status of tasks being performed by multiple users can be monitored.In the illustrated example, multiple users Jamie, John, Max, and Caroleach have a wearable computer with an eyeglass display 300, 302, 304,and 306, respectively. An item list is displayed on the eyeglass displayfor each of these users, with a current location marker to identify tothe respective users where they are in the task sequences they areperforming. Information regarding their current location is alsocommunicated to another computing device of their supervisor Jane, whois also wearing an eyeglass display 308. The information communicated toJane's computer can be simply an identification of the current location(e.g., Jane's 1s computer may already be programmed with all of thetasks in the list), or alternatively the entire (or at least a portionof) the item list. The information for one or more of the users Jamie,John, Max, and Carol can then be displayed on display 308, allowing Janeto keep track of the status of each of the users Jamie, John, Max, andCarol in performing their tasks. This allows Jane, as the supervisor, tosee if people are proceeding through their tasks too quickly or tooslowly (e.g., a user may be having difficulty and need assistance), toknow when the individual users will be finished with their tasks, etc.If a multi-tiered item list is being used, then the supervisor can alsozoom in on the particular step of a user and get additional informationregarding where the user is stuck.

[0057]FIG. 9 illustrates an exemplary group of lists that may bedisplayed on eyeglass display 308 of FIG. 8. Assume that each of theusers John, Jamie, Max, and Carol are each performing a machine assemblyprocess involving the following tasks: inventory the necessary parts,assemble an intake, lubricate a core part of the machine, install theassembled intake, verify that the batteries are fully charged, and thenrun a diagnostic program. The tasks in the machine assembly process areillustrated in a portion 310 of display 308 in an abbreviated form.Alternatively, the tasks illustrated in portion 310 may not beabbreviated, or may be represented in some other manner (e.g., asicons). A separate item list is displayed on display 308 for each of theusers along with a corresponding current ii location marker in the shapeof a ball or circle. Thus, as illustrated in FIG. 9, the viewer ofdisplay 308 can readily identify that John is at the “assemble intake”step, Jamie and Max are both at the “install intake” step, and Carol isat the “verify charge” step. Thus, the supervisor viewing display 308can quickly and easily determine, based on the item list and currentlocation markers, that each of Jamie, Max, and Carol is proceedingnormally through the assembly process, but that John is hung up on the“assemble intake” step, so the supervisor can check with John to see ifhe is experiencing difficulties with this step.

[0058] Conclusion

[0059] Although the description above uses language that is specific tostructural features and/or methodological acts, it is to be understoodthat the invention defined in the appended claims is not limited to thespecific features or acts described. Rather, the specific features andacts are disclosed as exemplary forms of implementing the invention.

1. One or more computer-readable media storing a computer program that,when executed by one or more processors, causes the one or moreprocessors to: display a subset of a plurality of steps in an order tobe performed by a user; altering an appearance of a current step in thesubset of steps that needs to be performed by the user to distinguishthe current step from other steps in the subset; allowing the user toinput data corresponding to the current step; and scrolling, in responseto user input of data corresponding to the current step, the pluralityof steps so that a new subset of the plurality of steps is presented tothe user.
 2. One or more computer-readable media as recited in claim 1,wherein the computer program further causes the one or more processorsto: alter, in response to user input of data corresponding to thecurrent step, the appearance of another step as necessary to identifythe new current step in the subset of steps that needs to be performedby the user.
 3. One or more computer-readable media as recited in claim1, wherein altering the appearance of the current step comprises markingthe current location with a ball.
 4. One or more computer-readable mediaas recited in claim 1, wherein altering the appearance of the currentstep comprises displaying the current step differently than other stepsin the subset.
 5. One or more computer-readable media as recited inclaim 1, wherein altering the appearance of the current step comprisesreplacing the current step with a set of one or more input options forthe current step.
 6. One or more computer-readable media as recited inclaim 1, wherein altering the appearance of the current step comprisessuperimposing, on the current step, a set of one or more input optionsfor the current step.
 7. One or more computer-readable media as recitedin claim 1, wherein the computer program further causes the one or moreprocessors to: replace, in the subset, the display of the current stepwith a display of the input data.
 8. One or more computer-readable mediaas recited in claim 1, wherein the computer program further causes theone or more processors to: display a current processing marker thatidentifies which step in the subset of steps is currently beingprocessed by the one or more processors.
 9. One or morecomputer-readable media as recited in claim 1, wherein the one or morecomputer-readable media comprise a computer memory of a wearablecomputer.
 10. A method comprising: displaying a list of items to behandled by a user in a particular order; identifying one item in thelist of items that is the current item; receiving a user inputcorresponding to the current item; and updating, in response toreceiving the user input, the identification of the one item that is thecurrent item to indicate the next item in the list of items as thecurrent item.
 11. A method as recited in claim 10, wherein displayingthe list of items comprises displaying at least one item correspondingto a task that has already been performed and at least one itemcorresponding to a task that still needs to be performed by the user.12. A method as recited in claim 10, wherein displaying the list ofitems comprises displaying, after the user input is received, the userinput in place of the corresponding item.
 13. A method as recited inclaim 10, wherein displaying the list of items comprises displaying onlya subset of the list of items at any given time.
 14. A method as recitedin claim 13, further comprising scrolling through the list of items todisplay different subsets as items in the list are handled by the user.15. A method as recited in claim 10, further comprising displaying acurrent processing marker identifying an item in the list of itemscorresponding to a current user input being processed.
 16. A method asrecited in claim 10, wherein the list of items comprises a list of tasksto be completed by the user, and wherein handling of an item by the usercomprises the user completing the task.
 17. A method as recited in claim16, wherein the list of tasks comprises a list of prompts correspondingto data to be entered into the computer by the user.
 18. A method asrecited in claim 10, wherein the list of items comprises a list ofprompts of words to be spoken by the user, and wherein handling of anitem by the user comprises speaking one or more words corresponding tothe prompt.
 19. One or more computer-readable memories containing acomputer program that is executable by a processor to perform the methodrecited in claim
 10. 20. A method comprising: displaying anidentification of a plurality of users; and for each of the plurality ofusers, displaying a list of tasks to be performed by the user,identifying one task in the list of tasks that is the current task thatneeds to be performed by the user, and updating, in response tocompletion of the task by the user, the identification of the one taskthat is the current task that needs to be performed by the user to bethe next task in the list of tasks.
 21. A method as recited in claim 20,wherein displaying the list of tasks comprises displaying only a subsetof the list of tasks to be performed by the user at any given time. 22.A method as recited in claim 21, further comprising scrolling throughthe list of tasks to display different subsets as tasks in the list arecompleted by the user.
 23. A method as recited in claim 20, wherein thelist of tasks comprises a list of actions to be taken by the user.
 24. Amethod as recited in claim 20, wherein identifying one task that is thecurrent task comprises displaying a geometric shape as a currentlocation marker identifying the one task.
 25. A method as recited inclaim 20, wherein identifying one task that is the current taskcomprises displaying the one task differently than the other tasks inthe list of tasks.
 26. A method as recited in claim 20, furthercomprising: receiving, for each of the plurality of users, an indicationfrom each user's computer of the current task for that user.
 27. One ormore computer-readable memories containing a computer program that isexecutable by a processor to perform the method recited in claim
 20. 28.A graphical user interface comprising: a list portion identifying a listof a plurality of items to be handled by a user; a user choices portionidentifying information corresponding to a current item in the list; anda current location marker that identifies one item of the list that isthe current item to be handled by the user, wherein the current locationmarker is automatically updated to identify the next item in the listafter the current item in the list has been handled by the user.
 29. Agraphical user interface as recited in claim 28, further comprising anapplet window portion identifying information clarifying the informationidentified in the user choices portion.
 30. A graphical user interfaceas recited in claim 29, wherein the user choices portion identifiesinformation that is to be entered into a computer by the user, andwherein the applet window portion identifies information that hasalready been entered into the computer by the user.
 31. A graphical userinterface as recited in claim 28, wherein the list of a plurality ofitems comprises a list of words to be spoken by the user.
 32. Agraphical user interface as recited in claim 28, wherein the list of aplurality of items comprises a list of prompts of words to be spoken bythe user, and wherein the user choices portion identifies, for eachprompt, one or more words that can be spoken by the user to properlyhandle the prompt.
 33. A graphical user interface as recited in claim28, wherein the list portion further identifies information that hasbeen entered by the user in handling previous items in the list.
 34. Agraphical user interface as recited in claim 28 implemented on awearable computer.
 35. A system comprising: a display device; a userinterface component, coupled to the display device, causing a userinterface to be displayed on the display device; wherein the userinterface includes a list portion in which a list of a plurality ofitems to be handled by a user are displayed; wherein the user interfacefurther includes a current location marker identifying one of the itemsin the list as the current item that needs to be handled by the user;and wherein the user interface component further automatically updatesthe current location marker to identify a new item in the list inresponse to the user handling the current item in the list.
 36. A systemas recited in claim 35, wherein the user interface component furtherreplaces, after the user has handled the current item, a user input inplace of the current item.
 37. A system as recited in claim 35, whereinthe user interface includes only a subset of the list of the pluralityof items at any given time.
 38. A system as recited in claim 37, whereinthe user interface component further scrolls through the list of itemsto display different subsets as items in the list are handled by theuser.
 39. A system as recited in claim 35, wherein the user interfacecomponent further displays, as part of the user interface, a currentprocessing marker identifying an item in the list that is currentlybeing processed by the system.
 40. A system as recited in claim 35,wherein the list of a plurality of items comprises a list of a pluralityof tasks to be completed by the user, and wherein handling of an item bythe user comprises the user completing the task.
 41. A system as recitedin claim 40, wherein the list of tasks comprises a list of promptscorresponding to data to be entered into the system by the user.
 42. Asystem as recited in claim 40, wherein the user interface component isimplemented in software.
 43. A method comprising: displaying a list oftasks to be performed; identifying one task in the list of tasks that isthe current task needing to be performed; receiving an inputcorresponding to the current task; and updating, in response toreceiving the input, the identification of the one task that is thecurrent task to indicate that the next task in the list of tasks is thecurrent task needing to be performed.
 44. A method as recited in claim43, wherein the displaying comprises displaying a list of tasks to beperformed by a user.
 45. A method as recited in claim 43, wherein theidentifying comprises superimposing, on the display of the current taskin the list, a set of one or more input options corresponding to thetask.
 46. A method as recited in claim 45, wherein the receivingcomprises receiving, as the input corresponding to the current task, oneof the input options from the set of one or more input options.
 47. Amethod as recited in claim 43, wherein the receiving comprises receivinga user input.
 48. A method as recited in claim 43, wherein the receivingcomprises receiving an input from a computer component, wherein theinput from the computer component indicates that the current task iscompleted.
 49. A method as recited in claim 48, wherein the computercomponent comprises a processor executing a software program.
 50. Amethod as recited in claim 48, wherein the computer component comprisesa hardware component configured to carry out the current task.
 51. Amethod as recited in claim 48, wherein the computer component comprisesa remote computer.
 52. A method as recited in claim 43, whereindisplaying the list of tasks comprises displaying only a subset of thelist of tasks at any given time.
 53. A method as recited in claim 52,further comprising scrolling through the list of tasks to displaydifferent subsets as tasks in the list are performed by the user.
 54. Amethod as recited in claim 43, further comprising displaying a currentprocessing marker identifying a task in the list of tasks correspondingto a current input being processed by a computer performing the method.55. One or more computer-readable memories containing a computer programthat is executable by a processor to perform the method recited in claim43.
 56. A graphical user interface comprising: a task list portionidentifying a list of a plurality of tasks to be performed by a user;and an indication in the task list portion of a current task to beperformed, wherein the indication is changed, in response to the currenttask being performed, to indicate a next task in the list as the currenttask to be performed.
 57. A graphical user interface as recited in claim56, further comprising a user choices portion identifying informationcorresponding to the current task on the list to be performed.
 58. Agraphical user interface as recited in claim 56, further comprising: asecond task list portion identifying a list of a plurality of tasks tobe performed by another user; and an indication in the second task listportion of a current task to be performed by the other user, wherein theindication is changed, in response to the current task being performedby the other user, to indicate a next task in the list of tasks to beperformed by the other use as the current task to be performed.
 59. Asystem comprising: means for displaying a list of items to be handled bya user in a particular order; and means for identifying one item in thelist of items that is the current item, for receiving a user inputcorresponding to the current item, and for updating, in response toreceiving the user input, the identification of the one item that is thecurrent item to indicate the next item in the list of items as thecurrent item.